package com.teamwork.ZuccEcho.Entity;

import lombok.Getter;
import lombok.Setter;

import javax.persistence.*;
import java.util.Date;
import java.util.List;

////反馈实例（就是问卷）
//@Entity
//@Table(name = "Questionnaire", schema = "", catalog = "")
//public class Questionnaire {
//    private long qnId;//反馈id
//    private String qnName;//反馈名称
//    private String qnIllustration;//反馈说明
////    private long mId;//反馈使用的模板id
//    private List<Question> content;//反馈包含的题目
//    private List<AnswerSheet> answerSheets;//某一份反馈包含的答卷
//    private String classroom;//反馈适用的班级
////    private String createrId;//创建者id
//    private Date createTime;//反馈创建的时间
//    private Date startTime;//反馈的开始时间
//    private Date finishedTime;//反馈的结束时间
////    private List<String> persons;//应填该问卷的人员id列表
//    private String qnStatus;//反馈的状态（未发布，已发布，已回收）
//
//    @Id
//    @Column(name = "qnId")
//    @GeneratedValue(strategy = GenerationType.IDENTITY)
//    public long getQnId() {
//        return qnId;
//    }
//
//    public void setQnId(long qnId) {
//        this.qnId = qnId;
//    }
//
//    @Basic
//    @Column(name = "qnName")
//    public String getQnName() {
//        return qnName;
//    }
//
//    public void setQnName(String qnName) {
//        this.qnName = qnName;
//    }
//
//    @Basic
//    @Column(name = "qnIllustration")
//    public String getQnIllustration() {
//        return qnIllustration;
//    }
//
//    public void setQnIllustration(String qnIllustration) {
//        this.qnIllustration = qnIllustration;
//    }
//
//    @Basic
//    @Column(name = "classroom")
//    public String getClassroom() {
//        return classroom;
//    }
//
//    public void setClassroom(String classroom) {
//        this.classroom = classroom;
//    }
//
//    @Basic
//    @Column(name = "createTime")
//    public Date getCreateTime() {
//        return createTime;
//    }
//
//    public void setCreateTime(Date createTime) {
//        this.createTime = createTime;
//    }
//
//    @Basic
//    @Column(name = "startTime")
//    public Date getStartTime() {
//        return startTime;
//    }
//
//    public void setStartTime(Date startTime) {
//        this.startTime = startTime;
//    }
//
//    @Basic
//    @Column(name = "finishedTime")
//    public Date getFinishedTime() {
//        return finishedTime;
//    }
//
//    public void setFinishedTime(Date finishedTime) {
//        this.finishedTime = finishedTime;
//    }
//
//    @Basic
//    @Column(name = "qnStatus")
//    public String getQnStatus() {
//        return qnStatus;
//    }
//
//    public void setQnStatus(String qnStatus) {
//        this.qnStatus = qnStatus;
//    }
//
//    @Override
//    public boolean equals(Object o) {
//        if (this == o) return true;
//        if (o == null || getClass() != o.getClass()) return false;
//        Questionnaire that = (Questionnaire) o;
//        return qnId == that.qnId &&
//                Objects.equals(qnName, that.qnName) &&
//                Objects.equals(qnIllustration, that.qnIllustration) &&
//                Objects.equals(classroom, that.classroom) &&
//                Objects.equals(createTime, that.createTime) &&
//                Objects.equals(startTime, that.startTime) &&
//                Objects.equals(finishedTime, that.finishedTime) &&
//                Objects.equals(qnStatus, that.qnStatus);
//    }
//
//    @Override
//    public int hashCode() {
//        return Objects.hash(qnId, qnName, qnIllustration, classroom, createTime, startTime, finishedTime, qnStatus);
//    }
//}

//反馈实例（就是问卷）
@Entity
//@Data
@Setter
@Getter
public class Questionnaire {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long qn_id;//反馈id
    private String qn_name;//反馈名称
    private String qn_illustration;//反馈说明
    private String qn_classroom;//反馈适用的班级
    private Date qn_createtime;//反馈创建的时间
    private Date qn_starttime;//反馈的开始时间
    private Date qn_finishtime;//反馈的结束时间
    private String qn_status;//反馈的状态（未发布，已发布，已回收）

//    @OneToMany()
    @OneToMany(mappedBy = "questionnaire")
//    @JoinColumn(name="qn_id")//在子表中的外键名
    private List<Qnquestion> qnquestionList;

//    @OneToMany()
    @OneToMany(mappedBy = "questionnaire")
//    @JoinColumn(name="qn_id")//在子表中的外键名
    private List<Answersheet> answersheetList;

    @ManyToOne
    @JoinColumn(name="c_id",nullable=false)//在子表中的外键名
    private Course course;//课程

    @Override
    public String toString() {
        return "Questionnaire{" +
                "qn_id=" + qn_id +
                ", qn_name='" + qn_name + '\'' +
                ", qn_illustration='" + qn_illustration + '\'' +
                ", qn_classroom='" + qn_classroom + '\'' +
                ", qn_createtime=" + qn_createtime +
                ", qn_starttime=" + qn_starttime +
                ", qn_finishtime=" + qn_finishtime +
                ", qn_status='" + qn_status + '\'' +
                ", qnquestionList=" + qnquestionList +
                '}';
    }
}